The present invention relates to the field of data storage, and particularly to error correction code systems that use multi-level code structures for detecting and correcting disk drive read/write errors. More specifically, the present invention relates to a programmable multi-level track layout algorithm for optimizing error correction redundancy.
The operation of magnetic storage devices such as disk drives, relies on the ability of the device to write and read data in the form of an electromagnetic signals with high precision. In the normal operation of magnetic storage devices it is possible for mechanical, thermal, or electrical events to occur that may interfere with the required precision. An Error Correction Code system is used to detect and correct errors due to undesirable events and to ensure the integrity of the stored data. As the magnetic storage areal densities are increased to the 100 Gbit/in2 level and beyond, the electromagnetic signal may be increasingly corrupted by random noise, and errors may result due to background noise.
Traditionally, the error correcting systems used is an On-The-Fly Reed Solomon (RS) code. Data is stored in 512 byte sectors, commonly split into a number of interleaves, each of which is independently protected by an equal number of check bytes of a Reed-Solomon code, stored on the disk. A Reed-Solomon code is a linear cyclic code having the structure of a block code.
To date, the number of bytes used by the error correcting code has been uniformly distributed. Often the number of bytes used for error correction either exceeds the number actually required, or is insufficient for the actual errors occurring non-uniformly across the disk surface, since the number of bytes used for correction is determined by the error rate as recorded across the entire surface. The bytes themselves consume valuable disk real estate.
There is therefore a need for an adaptive error correction code (ECC) method that reduces the number of check bytes as well as ensures data integrity when affected by a mixture of long error bursts as well as random error caused by background noise. The desired method should increase the storage capacity of the disk by reducing the area devoted to ECC. Currently, approximately five percent (5%) of the total disk storage area is devoted to the ECC.
During an exemplary manufacturing process, the disk drives could be tested at the drive operating level. Part of this test would require information to be written to and read from at least some sectors. The strength and quality of the magnetic read back signal is monitored and recorded. This information is descriptive of the ability of the drives to accurately read and write bytes and can be used to characterize areas of the magnetic disks that have a higher likelihood to generate errors.
Hassner, et al., U.S. Pat. No. 5,487,077 describes a location dependent variable error correction process for multi-track recording media using variable length coding means. The programmable multi-level error correction code has the capability of adjusting to the linear recording density of a zone of contiguous recording tracks on a surface or volume having at least two zones of different average linear recording density. Each zone has associated therewith a parameter d, the Hamming distance, d, defining the number of error correction bytes (r=dxe2x88x921) to be appended to data blocks to form a codeword written to tracks within the zone and the number t less than or equal to └(dxe2x88x921)/2┘ of correctable errors in the event of a non-zero syndrome vector calculated upon readback of a codeword from a track within the zone. The d parameter determines the length of a shift register type encoder/syndrome generator.
Blaum et. al., U.S. Pat. No. 5,068,858, proposes a method for error correction encoding and decoding of sequences (blocks) of data symbols (bytes) using a linear cyclic code such that the number of check symbols (bytes) appending each data block could be reduced as a function of the band or zone of contiguous concentric tracks. The result in the Blaum et al. patent was based on the observation that for conventional recording the linear recording track density varies as an inverse function of the radius moving from the disk center to circumference. As a consequence, the errors tend to be clustered in the dense inner zones of tracks. This implies that the number of error correction bytes appending each block could be progressively reduced where the blocks were recorded on the less dense outer zones. An alternative to reducing the number of ECC bytes per block is to reduce the codeword size.
Though conventional methods may have resolved certain problems, there remains a need for a multi-level, adaptive ECC format to be used in blocks comprised of several 512-byte sectors, where check bytes are uniformly appended to the inner 512 byte sub-blocks and non-uniformly to the larger blocks, and are used in an efficient manner to control error correction redundancy.
The present invention utilizes test information collected at the file characterization test to adaptively determine the quantity of error correction code bytes needed at all levels of the error correction scheme. The error correction needed at the sector level is determined from a measurement of the background noise floor.
At the block level the file characterization is specific to zones identified by a head, sectors and cylinders. The formatting efficiency of the drive is increased by adaptively linking the length of the error correction code to the location of the zone. By measuring the error rate on a per zone basis and comparing this rate to the disk level error rate the ECC can be optimized on a per-zone basis. One zone is comprised of approximately 500 tracks and there are typically 20 to 30 zones per disk.
To this end, the present invention describes an algorithm for calculating a programmable multi-level ECC scheme by modeling a probability distribution as a first polynomial having a basis, converting the first polynomial to a second polynomial having a different basis, and defining a Hamming distance distribution from the second polynomial.
In a preferred embodiment, modeling the probability distribution includes modeling as a Charlier polynomial, and converting to the second polynomial includes converting to a Krawtchouck polynomial, and using connection coefficients that are calculated recursively. The optimization of error correction redundancy in a data storage medium is implemented by assigning additional check bytes, and by defining the Hamming distance distribution according to the following expression:
{t1,[Bk,tk]},
where k varies between 2 and a predefined value n; where Bk denotes a number of sub-blocks, and where tk represents an additional number of corrections given to this number of sub-blocks.